package com.example.addemoone.kotlin

fun main() {
    listLambda()
}

fun listLambda() {
    val list = listOf(11, 22, 33, -4, -5, 88, 3, 18)

    // 遍历
    list.forEach { println(it) }
    // 带索引遍历
    list.forEachIndexed { index, item -> println("索引：$index, 元素：$item") }
    // 最大值
    val max = list.max()
    println("最大值：$max")
    // 最小值
    val min = list.min()
    println("最小值：$min")
    // 平均值
    val avg = list.average()
    println("平均值：$avg")
    // 过滤
    val filter = list.filter { it > 10 }
    println("过滤：$filter")
    // 映射
    val map = list.map { it * 2 }
    println("映射：$map")
    // 升序
    val sorted = list.sorted()
    println("升序：$sorted")
    // 降序
    val sortedDescending = list.sortedDescending()
    println("降序：$sortedDescending")
    // 求和
    val sum = list.sum()
    println("求和：$sum")
    // 将所有的数字拼接一个逗号
    val joinToString = list.joinToString(",")
    println("拼接：$joinToString")
    // 获取长度
    val size = list.size
    println("长度：$size")
    // 是否有一个负数
    val any = list.any { it < 0 }
    println("是否有负数：$any")
    // 是否全部是负数
    val all = list.all { it < 0 }
    println("是否全部是负数：$all")
    // 获取索引
    val indexOf = list.indexOf(33)
    println("索引：$indexOf")
    // 获取元素
    val elementAt = list.elementAt(3)
    println("元素：$elementAt")
    // 获取元素
    val elementAtOrNull = list.elementAtOrNull(10)
    println("元素：$elementAtOrNull")
    // 获取元素
    val elementAtOrElse = list.elementAtOrElse(10) { 0 }
    println("元素：$elementAtOrElse")
    // 查找符合条件的第一个元素
    val find = list.find { it > 10 }
    println("查找符合条件的第一个元素：$find")
    // 安全查找
    val firstOrNull = list.firstOrNull { it > 10 }
    println("安全查找：$firstOrNull")
}